﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include "GcmpRenderingInterface.h"
#include "Color.h"

namespace gcmp
{
    /// \brief 高亮属性设置接口类
    class GCMP_RENDERING_INTERFACE_EXPORT IHighlightSetting
    {
    public:
        /// \brief 析构函数
        virtual ~IHighlightSetting();

        /// \brief 获取高亮下的颜色
        /// \return 高亮下的颜色
        virtual Color GetColor() const = 0;

        /// \brief 设置高亮下的颜色
        /// \param color 高亮下的颜色
        virtual void SetColor(const Color& color) = 0;

        /// \brief 获取高亮下的截面线颜色
        /// \return 高亮下的截面线颜色
        virtual Color GetSectionLineColor() const = 0;

        /// \brief 设置高亮下的截面线颜色
        /// \param color 高亮下的截面线颜色
        virtual void SetSectionLineColor(const Color& color) = 0;

        /// \brief 获取高亮下的文字颜色
        /// \return 高亮下的文字颜色
        virtual Color GetTextColor() const = 0;

        /// \brief 设置高亮下的文字颜色
        /// \param color 高亮下的文字颜色
        virtual void SetTextColor(const Color& color) = 0;

        /// \brief 获取点高亮下线样式颜色
        /// \return 点高亮下线样式颜色
        virtual Color GetLineColorWhenPointSelected() const = 0;

        /// \brief 设置点高亮下线样式颜色
        /// \param color 点高亮下线样式颜色
        virtual void SetLineColorWhenPointSelected(const Color& color) = 0;

        /// \brief 获取不透明物体当处于选中状态的透明度
        /// \return 返回透明度,范围0-255
        virtual unsigned char GetTransparencyForOpaqueObject() const = 0;

        /// \brief 设置不透明物体当处于选中状态的透明度
        /// \param transparency 透明度,范围0-255
        virtual void SetTransparencyForOpaqueObject(unsigned char transparency) = 0;
    };
}

